package com.demo.controller;

import com.demo.exception.MyException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

import java.sql.SQLException;

@ControllerAdvice
public class GlobalExceptionHandlerController {
    /**
     * 只要在一个Controller中，有一个使用@ExceptionHandler注解修饰的方法
     * 那么在这个Controller中 任何方法抛出异常时 都会由ExceptionHandler注解修饰的方法进行处理
     */
    @ExceptionHandler
    public String exception(Exception ex) {
        //根据不同错误转向不同页面 ，异常与View的对应关系
        if (ex instanceof MyException) {
            return "my-error";
        } else if (ex instanceof SQLException) {
            return "sql-error";
        }
        return "error";
    }
}
